// 对象上使用 delete
let o = { x: 1, y: 2 };
console.log(`${"x" in o}`); // true
console.log(`delete o.x: ${delete o.x}`); // true，表示删除成功
console.log(`o = ${JSON.stringify(o)}`); // o = {"y":2}
console.log(`${"x" in o}`); // false
console.log(`delete o.x: ${delete o.x}`); // true

// 数组使用 delete
let a = [1, 3, 5];
console.log(`delete a[1]: ${delete a[1]}`); // delete a[1]: true
console.log(`a = ${JSON.stringify(a)}`); // a = [1,null,5]
console.log(`a[1] === undefined: ${a[1] === undefined}`); // a[1] === undefined: true

// 不能删除变量，返回 false，在严格模式下报 SyntaxError
console.log(`delete o: ${delete o}`); // false
// 不可删除的属性，返回 false，严格模式下报 TypeError
console.log(`delete Object.prototype: ${delete Object.prototype}`); // false
